#ifndef MOVE_H
#define MOVE_H

#include <string>
#include "chesspiece.h"

class Move
{
public:
    Move();

    std::string startType;
    std::string endType;
    std::string color;
    std::string startCol;
    std::string startRow;
    std::string endCol;
    std::string endRow;
    std::string killType;
    bool kill;
    bool castle;
    bool enPassant;
    bool PawnPro;

    int PassantRow;
    int startRowint;
    int endRowint;
    int startColint;
    int endColint;

    Move(ChessPiece * start, ChessPiece * killp , int row , int col);

    Move operator=(Move & other);

    void didPromote(ChessPiece * p);
    std::string stringifyType(ChessPiece *p);
    std::string moreTypeString(ChessPiece * p);
    std::string stringifyColor(ChessPiece *p);
    void updateEnPassant();
    void updateCastle();
};

#endif // MOVE_H
